/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package abstractas;

/**
 *
 * @author alumnom
 */
public class Abstractas {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        //Mamifero m = new Mamifero();
        Herbivoro vaca =new Herbivoro("Milka");
        //lo que tiene de especial esque ademas de heredar puede hacer metodos abstractos.
        System.out.println(vaca.getNombre());
        System.out.println(vaca.comer());
        System.out.println(vaca.expresar());
        
        Carnivoro perro = new Carnivoro("Pluto");
        System.out.println(perro.getNombre());
        System.out.println(perro.comer());
        System.out.println(perro.expresar());
        
        //--------------------------------------------------------------------------
        //Ejercicio de empleados
        Empleado em = new Empleado("Pepe",2300.80);
        System.out.println("Ganas "+em.calcularNomina());
        System.out.println("El estado se quedo con "+em.calcularRetenciones());
        Director di =new Director("Juan",2300.80,"Informatica",1.3);
        System.out.println("Ganas "+di.calcularNomina());
        System.out.println("El estado se quedo con "+di.calcularRetenciones()+" tu "+di.getNombre());
        DirectorCompuesto dico = new DirectorCompuesto("Pepe",2000.00,"Informacion",1.3);
        System.out.println("Ganas "+dico.calcularNomina()+" tu "+dico.getNombre());
        //System.out.println("El estado se quedo con "+dico.calcularRetenciones());
//        Director d= new Director("Juan",2000.00,"Recursos Humanos",1.3);//Estatico
//        Empleado e= new Empleado("Jose",1300.80);//Dinamico
//        d=e;//director no puede ser empleado porque es hijo
//        e=d;//empleado si puede ser director porque es padre
        System.out.println("Soy Jennifer");
        System.out.println("Modificando de nuevo");
    }
}
